package leecode

func countPrimes2(n int) (result int) {
	isPrime := make([]bool, n)
	for i := 0; i < n; i++ {
		isPrime[i] = true
	}
	for i := 2; i < n; i++ {
		if isPrime[i] {
			result++
			for j := 2 * i; j < n; j += i {
				isPrime[j] = false
			}
		}
	}
	return
}

//
//func isPrime2(n int) bool {
//	if n == 1 {
//		return false
//	}
//	if n == 2 || n == 3 {
//		return true
//	}
//	if n%6 != 1 && n%6 != 5 {
//		return false
//	}
//	for i := 5.0; i <= math.Sqrt(float64(n)); i++ {
//		if n%int(i) == 0 || n%int(i+2) == 0 {
//			return false
//		}
//	}
//	return true
//}
